/**
 * AI服务配置文件
 * 用于管理AI服务的各种配置参数
 */

// AI服务配置
export const AI_CONFIG = {
  // 基础配置
  BASE_URL: 'http://localhost:8083', // AI服务基础URL
  API_TIMEOUT: 30000, // API超时时间（毫秒）
  
  // 接口路径
  ENDPOINTS: {
    CHAT: '/XinAi/chat',           // AI对话接口
    CONFIG_STATUS: '/XinAi/config/status', // 配置状态接口
    TEST: '/XinAi/test',           // 测试接口
    HEALTH: '/XinAi/health',       // 健康检查接口
    UPLOAD_IMAGE: '/upload/image'  // 图片上传接口（需要后端实现）
  },
  
  // 育儿咨询相关配置
  PARENTING: {
    // 快速问题模板
    QUICK_QUESTIONS: [
      '孩子不听话怎么办？',
      '孩子学习注意力不集中',
      '孩子情绪管理问题',
      '孩子社交困难',
      '孩子沉迷电子产品',
      '孩子叛逆期表现',
      '孩子学习压力大',
      '孩子缺乏自信',
      '孩子与同伴冲突',
      '孩子生活习惯问题'
    ],
    
    // 年龄分组
    AGE_GROUPS: [
      { label: '0-3岁', value: '0-3', description: '婴幼儿期' },
      { label: '3-6岁', value: '3-6', description: '学前期' },
      { label: '6-12岁', value: '6-12', description: '学龄期' },
      { label: '12-18岁', value: '12-18', description: '青春期' }
    ],
    
    // 问题分类
    CATEGORIES: [
      { label: '行为问题', value: 'behavior', icon: '🚶' },
      { label: '学习问题', value: 'learning', icon: '📚' },
      { label: '情绪问题', value: 'emotion', icon: '😊' },
      { label: '社交问题', value: 'social', icon: '👥' },
      { label: '生活习惯', value: 'habit', icon: '⏰' },
      { label: '亲子关系', value: 'relationship', icon: '👨‍👩‍👧‍👦' }
    ]
  },
  
  // 图片分析配置
  IMAGE_ANALYSIS: {
    MAX_SIZE: 10 * 1024 * 1024, // 最大文件大小（10MB）
    SUPPORTED_FORMATS: ['jpg', 'jpeg', 'png', 'gif'],
    COMPRESSION_QUALITY: 0.8, // 压缩质量
    MAX_DIMENSION: 1920 // 最大尺寸
  },
  
  // AI对话配置
  CHAT: {
    MAX_MESSAGE_LENGTH: 500, // 最大消息长度
    MAX_HISTORY: 50, // 最大对话历史
    TYPING_INDICATOR_DELAY: 1000, // 打字指示器延迟（毫秒）
    AUTO_SCROLL_DELAY: 300 // 自动滚动延迟（毫秒）
  },
  
  // 提示词模板
  PROMPTS: {
    // 育儿建议提示词
    PARENTING_ADVICE: `请从专业育儿角度分析这个问题，并给出具体建议：

问题：{question}
孩子年龄：{age}
具体行为：{behavior}

请从以下角度给出建议：
1. 行为分析：分析孩子行为的原因和意义
2. 发展评估：评估孩子的发展水平是否正常
3. 沟通建议：如何与孩子进行有效沟通
4. 教育方法：具体的教育方法和技巧
5. 注意事项：需要注意的要点和禁忌
6. 长期规划：如何帮助孩子持续改善

请用通俗易懂的语言，给出可操作的具体建议。`,
    
    // 图片分析提示词
    IMAGE_ANALYSIS: `请分析这张图片中孩子的行为表现，并给出专业的育儿建议。

图片描述：{description}

请从以下角度分析：
1. 行为表现识别：识别图片中的具体行为
2. 情绪状态分析：分析孩子的情绪状态
3. 发展水平评估：评估孩子的发展水平
4. 环境因素分析：分析环境对孩子行为的影响
5. 教育建议：基于图片内容给出具体建议
6. 注意事项：需要注意的要点

请用专业但易懂的语言给出建议。`,
    
    // 通用育儿咨询提示词
    GENERAL_COUNSELING: `作为专业的育儿顾问，请帮助这位家长解决育儿困惑。

问题：{question}

请提供：
1. 问题分析：分析问题的本质和原因
2. 专业建议：基于儿童发展心理学给出建议
3. 具体方法：提供可操作的具体方法
4. 注意事项：提醒需要注意的要点
5. 长期建议：如何预防类似问题再次发生

请用温暖、专业的语气回答，让家长感受到支持和理解。`
  },
  
  // 错误消息配置
  ERROR_MESSAGES: {
    NETWORK_ERROR: '网络连接失败，请检查网络后重试',
    API_ERROR: '服务暂时不可用，请稍后再试',
    TIMEOUT_ERROR: '请求超时，请稍后重试',
    UPLOAD_ERROR: '图片上传失败，请重试',
    ANALYSIS_ERROR: '图片分析失败，请重试',
    CONFIG_ERROR: 'AI服务配置错误，请联系管理员'
  },
  
  // 成功消息配置
  SUCCESS_MESSAGES: {
    MESSAGE_SENT: '消息发送成功',
    IMAGE_UPLOADED: '图片上传成功',
    ANALYSIS_COMPLETE: '图片分析完成',
    CONFIG_LOADED: '配置加载成功'
  }
}

// 环境配置
export const ENV_CONFIG = {
  // 开发环境
  DEVELOPMENT: {
    BASE_URL: 'http://localhost:8083',
    DEBUG: true,
    LOG_LEVEL: 'debug'
  },
  
  // 生产环境
  PRODUCTION: {
    BASE_URL: 'https://your-production-domain.com', // 请替换为实际的生产环境URL
    DEBUG: false,
    LOG_LEVEL: 'error'
  },
  
  // 测试环境
  TESTING: {
    BASE_URL: 'http://localhost:8083',
    DEBUG: true,
    LOG_LEVEL: 'info'
  }
}

// 获取当前环境配置
export function getCurrentEnvConfig() {
  // 这里可以根据实际的环境变量或构建配置来判断
  // 暂时返回开发环境配置
  return ENV_CONFIG.DEVELOPMENT
}

// 获取AI服务配置
export function getAIConfig() {
  const envConfig = getCurrentEnvConfig()
  return {
    ...AI_CONFIG,
    BASE_URL: envConfig.BASE_URL,
    DEBUG: envConfig.DEBUG,
    LOG_LEVEL: envConfig.LOG_LEVEL
  }
}

// 验证配置
export function validateConfig(config) {
  const errors = []
  
  if (!config.BASE_URL) {
    errors.push('BASE_URL 不能为空')
  }
  
  if (!config.ENDPOINTS.CHAT) {
    errors.push('CHAT 接口路径不能为空')
  }
  
  if (config.API_TIMEOUT <= 0) {
    errors.push('API_TIMEOUT 必须大于0')
  }
  
  return {
    isValid: errors.length === 0,
    errors
  }
}

// 默认导出
export default {
  AI_CONFIG,
  ENV_CONFIG,
  getCurrentEnvConfig,
  getAIConfig,
  validateConfig
} 